<!DOCTYPE html><html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><title>Sean Nam | Engineer, Builder, Operator</title><meta name="description" content="Software engineer building with AI agents, leading engineering teams, and helping companies figure out what's next. Former startup CTO. SDBJ Influential Tech Leader 2024."><meta property="og:title" content="Sean Nam | Engineer, Builder, Operator"><meta property="og:description" content="Software engineer building with AI agents, leading engineering teams, and helping companies figure out what's next. Former startup CTO. SDBJ Influential Tech Leader 2024."><meta property="og:url" content="https://seannam.com"><meta property="og:site_name" content="Sean Nam"><meta property="og:type" content="website"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Sean Nam | Engineer, Builder, Operator"><meta name="twitter:description" content="Software engineer building with AI agents, leading engineering teams, and helping companies figure out what's next. Former startup CTO. SDBJ Influential Tech Leader 2024."><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=Instrument+Serif&display=swap" rel="stylesheet"><script src="https://app.rybbit.io/api/script.js" data-site-id="de3701656e30" defer></script><script defer src="https://umami.snam.io/script.js" data-website-id="0214d931-42be-4361-af1c-c2871a048371"></script><link rel="stylesheet" href="/_astro/_slug_.C-tvwCpL.css"></head> <body>  <main id="main-content"> <nav class="fixed top-0 left-0 right-0 z-50 backdrop-blur-md bg-ivory/80 border-b border-border/50"> <a href="#main-content" class="sr-only focus:not-sr-only focus:absolute focus:top-2 focus:left-2 focus:z-50 focus:px-4 focus:py-2 focus:bg-navy focus:text-ivory focus:rounded-lg focus:text-sm focus:font-medium">
Skip to content
</a> <div class="max-w-6xl mx-auto px-6 h-16 flex items-center justify-between"> <a href="/" class="font-display text-xl text-navy tracking-tight hover:text-navy-light transition-colors" aria-current="page">
Sean Nam
</a> <div class="hidden sm:flex items-center gap-6"> <a href="/fcto" class="text-sm hover:text-navy transition-colors duration-200 py-2 text-text-secondary">
FCTO Advisory
</a> <a href="/experience" class="text-sm hover:text-navy transition-colors duration-200 py-2 text-text-secondary">
Experience
</a> <a href="/portfolio" class="text-sm hover:text-navy transition-colors duration-200 py-2 text-text-secondary">
Portfolio
</a> <a href="/builds" class="text-sm hover:text-navy transition-colors duration-200 py-2 text-text-secondary">
Projects
</a> <a href="/blog/" target="_blank" class="text-sm hover:text-navy transition-colors duration-200 py-2 text-text-secondary">
Blog
</a> <a href="#connect" class="inline-flex px-5 py-2 bg-navy text-ivory text-sm font-medium rounded-lg hover:bg-navy-light transition-colors duration-200"> Get in Touch </a> </div> <button type="button" class="sm:hidden p-2 -mr-2 text-navy" aria-label="Open menu" aria-expanded="false" data-menu-toggle> <svg class="w-6 h-6" fill="none" stroke="currentColor" stroke-width="1.5" viewBox="0 0 24 24"> <path data-menu-icon stroke-linecap="round" stroke-linejoin="round" d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"></path> </svg> </button> </div> <div class="sm:hidden hidden border-t border-border/50 bg-ivory/95 backdrop-blur-md" data-mobile-menu> <div class="max-w-6xl mx-auto px-6 py-3 flex flex-col"> <a href="/fcto" class="text-sm hover:text-navy transition-colors duration-200 py-3 text-text-secondary">
FCTO Advisory
</a> <a href="/experience" class="text-sm hover:text-navy transition-colors duration-200 py-3 text-text-secondary">
Experience
</a> <a href="/portfolio" class="text-sm hover:text-navy transition-colors duration-200 py-3 text-text-secondary">
Portfolio
</a> <a href="/builds" class="text-sm hover:text-navy transition-colors duration-200 py-3 text-text-secondary">
Projects
</a> <a href="/blog/" target="_blank" class="text-sm hover:text-navy transition-colors duration-200 py-3 text-text-secondary">
Blog
</a> <a href="#connect" class="inline-flex justify-center px-5 py-3 bg-navy text-ivory text-sm font-medium rounded-lg hover:bg-navy-light transition-colors duration-200 mt-2"> Get in Touch </a> </div> </div> </nav> <script type="module">const e=document.querySelector("[data-menu-toggle]"),n=document.querySelector("[data-mobile-menu]");e&&n&&e.addEventListener("click",()=>{const t=e.getAttribute("aria-expanded")==="true";e.setAttribute("aria-expanded",String(!t)),e.setAttribute("aria-label",t?"Open menu":"Close menu"),n.classList.toggle("hidden"),e.querySelector("[data-menu-icon]").setAttribute("d",t?"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5":"M6 18L18 6M6 6l12 12")});</script>  <section class="relative pt-36 pb-20 md:pt-44 md:pb-28 overflow-hidden"> <div class="absolute inset-0 pointer-events-none overflow-hidden"> <div class="absolute -top-1/4 -right-1/4 w-[800px] h-[800px] rounded-full bg-gradient-to-br from-amber/[0.04] to-transparent"></div> <div class="absolute top-1/2 -left-32 w-64 h-64 border border-border/30 rounded-full"></div> </div> <div class="relative max-w-4xl mx-auto px-6"> <div class="animate-fade-up"> <span class="inline-flex items-center gap-2 text-xs font-semibold tracking-[0.15em] uppercase text-amber-text"> <span class="w-8 h-px bg-amber"></span> Sean Nam </span> </div> <h1 class="mt-6 font-display text-5xl md:text-6xl lg:text-7xl leading-[1.05] text-navy animate-fade-up delay-1">
I build software with AI agents, lead engineering teams, and help companies figure out
<span class="relative"> <span class="relative z-10">what's next.</span> <span class="absolute bottom-1 left-0 right-0 h-3 bg-amber/20 -z-0"></span> </span> </h1> <div class="mt-8 space-y-4 text-lg md:text-xl leading-relaxed text-text-secondary max-w-3xl animate-fade-up delay-2"> <p>
Engineering operator with startup CTO experience, now deep in agentic
            engineering and AI product development. I have been writing code and
            shipping products since I was a teenager, long before anyone was
            paying me to.
</p> <p class="text-text-muted text-base">
Former CTO at Ivy Energy. SDBJ Leaders of Influence in Technology 2024.
</p> </div> <div class="mt-10 flex flex-col sm:flex-row gap-4 animate-fade-up delay-3"> <a href="#connect" class="inline-flex items-center justify-center px-7 py-3.5 bg-amber hover:bg-amber-light text-navy font-semibold rounded-lg transition-all duration-200 hover:shadow-lg hover:shadow-amber/20">
Get in Touch
</a> <a href="/experience" class="inline-flex items-center justify-center px-7 py-3.5 bg-navy hover:bg-navy-light text-ivory font-semibold rounded-lg transition-all duration-200">
See My Work
</a> </div> </div> </section>  <section class="py-24 md:py-32 bg-navy text-text-on-dark relative overflow-hidden"> <div class="absolute inset-0 pointer-events-none"> <div class="absolute top-0 right-0 w-96 h-96 bg-gradient-to-bl from-amber/[0.03] to-transparent"></div> <div class="absolute bottom-0 left-0 w-64 h-64 bg-gradient-to-tr from-amber/[0.02] to-transparent"></div> </div> <div class="relative max-w-4xl mx-auto px-6"> <span class="inline-flex items-center gap-2 text-xs font-semibold tracking-[0.15em] uppercase text-amber-text"> <span class="w-8 h-px bg-amber"></span> What I'm Focused On </span> <h2 class="mt-6 font-display text-3xl md:text-4xl lg:text-5xl leading-tight">
Software engineering is being reinvented right now.
<span class="italic text-amber">I'm in the middle of it.</span> </h2> <div class="mt-10 space-y-6 text-lg leading-relaxed text-text-on-dark-muted"> <p>
I work at the intersection of agentic engineering and hands-on product
            building. That means using AI agents not as toys or demos, but as
            real tools in real workflows: writing code, reviewing architecture,
            managing complexity, and shipping faster with smaller teams.
</p> <p>
I build with tools like Claude Code daily, including custom hooks,
            multi-agent workflows, and specialized tooling that pushes what's
            possible with agentic development. I also use these tools to ship
            real products, like NotePulse, a SaaS I built from zero to launch
            using AI-assisted rapid iteration.
</p> <p class="text-text-on-dark font-medium">
The way software gets built is changing. The engineers who understand
            how to truly work with AI agents, not just use them, will define the
            next era. That's what I'm focused on.
</p> </div> </div> </section>  <section class="py-24 md:py-32"> <div class="max-w-4xl mx-auto px-6"> <span class="inline-flex items-center gap-2 text-xs font-semibold tracking-[0.15em] uppercase text-amber-text"> <span class="w-8 h-px bg-amber"></span> How I Think </span> <h2 class="mt-6 font-display text-3xl md:text-4xl lg:text-5xl leading-tight text-navy max-w-2xl">
A few things I believe
</h2> <div class="mt-14 space-y-10"> <div class="border-l-2 border-amber/40 pl-6"> <p class="text-xl font-semibold text-navy leading-snug">AI is doing to software what factories did to craftsmanship.</p> <p class="mt-3 text-text-secondary leading-relaxed">The same forces that democratized manufacturing are now democratizing code. Most of what&#39;s being produced is noise. But somewhere in the flood are the next great inventions of software.</p> </div><div class="border-l-2 border-amber/40 pl-6"> <p class="text-xl font-semibold text-navy leading-snug">Execution beats strategy every time.</p> <p class="mt-3 text-text-secondary leading-relaxed">The best plan is the one that ships. I have seen too many teams spend months architecting the perfect system while competitors ship something good enough and learn from real users.</p> </div><div class="border-l-2 border-amber/40 pl-6"> <p class="text-xl font-semibold text-navy leading-snug">Teams are the system. Tools are the amplifier.</p> <p class="mt-3 text-text-secondary leading-relaxed">AI tooling amplifies what&#39;s already there. If the team has clear ownership, good judgment, and strong execution habits, AI makes them dramatically faster. If not, it just makes the mess faster too.</p> </div><div class="border-l-2 border-amber/40 pl-6"> <p class="text-xl font-semibold text-navy leading-snug">Build for independence, not dependency.</p> <p class="mt-3 text-text-secondary leading-relaxed">Whether it&#39;s a company, a product, or a career, the goal is to own the outcome. I believe in building things that generate leverage, not just income.</p> </div> </div> </div> </section>  <section id="experience" class="py-24 md:py-32 bg-ivory-dark"> <div class="max-w-4xl mx-auto px-6"> <span class="inline-flex items-center gap-2 text-xs font-semibold tracking-[0.15em] uppercase text-amber-text"> <span class="w-8 h-px bg-amber"></span> The Arc </span> <h2 class="mt-6 font-display text-3xl md:text-4xl lg:text-5xl leading-tight text-navy max-w-3xl">
I have been building since before anyone was paying me to
</h2> <p class="mt-6 text-lg text-text-secondary leading-relaxed max-w-3xl">
My career doesn't start with a first job. It starts with a teenager
          publishing apps and running a business. Every role since has been a
          chapter in the same story: build, ship, learn, repeat.
</p> <div class="mt-16 space-y-12">  <div class="grid grid-cols-1 md:grid-cols-[140px_1fr] gap-4 md:gap-8"> <div class="text-sm font-semibold text-amber-text tracking-wide">Early 2010s</div> <div> <h3 class="text-xl font-semibold text-navy">Indie Builder</h3> <p class="mt-2 text-text-secondary leading-relaxed">
Published 50+ mobile apps and games, amassing over 1 million downloads.
                Ran Junior Fountain, a school business that earned $10,000+ in profit
                in under a year. Wrote guest articles, appeared on podcasts. Building
                and shipping as a teenager.
</p> </div> </div>  <div class="grid grid-cols-1 md:grid-cols-[140px_1fr] gap-4 md:gap-8"> <div class="text-sm font-semibold text-amber-text tracking-wide">2015 &ndash; 2019</div> <div> <h3 class="text-xl font-semibold text-navy">Military & Education</h3> <p class="mt-2 text-text-secondary leading-relaxed">
Software developer in the Republic of Korea Air Force, receiving an
                Excellence Award for development work. Then UC San Diego for Computer
                Science, where I mentored 30 students through CodePath's iOS program
                and won Zoohackathon 2017 building with Google Cloud Vision ML.
</p> </div> </div>  <div class="grid grid-cols-1 md:grid-cols-[140px_1fr] gap-4 md:gap-8"> <div class="text-sm font-semibold text-amber-text tracking-wide">2020 &ndash; 2024</div> <div> <h3 class="text-xl font-semibold text-navy">Ivy Energy: Engineer to CTO</h3> <p class="mt-2 text-text-secondary leading-relaxed">
Joined as the first full-time engineering hire and built the original
                MVP. Grew from Software Engineer to Head of Engineering to CTO in
                under three years. Scaled from ~2 customers and 200 units to 30+
                customers and 6,000+ units live. Grew the team from 2 to 8+ engineers
                plus a Data Science team. Managed a $2M budget across Product,
                Engineering, Data Science, and IT/Security. Led SOC2 compliance.
                Supported the company's $10M Series A.
</p> </div> </div>  <div class="grid grid-cols-1 md:grid-cols-[140px_1fr] gap-4 md:gap-8"> <div class="text-sm font-semibold text-amber-text tracking-wide">2025 &ndash; Now</div> <div> <h3 class="text-xl font-semibold text-navy">Independent Operator</h3> <p class="mt-2 text-text-secondary leading-relaxed">
Fractional CTO advisory for founders scaling past funding. Founding
                software engineer at Saidi Health, where a strategic platform decision
                accelerated the MVP timeline. Building AI-native products. Deep in
                agentic engineering, using and pushing the boundaries of AI-assisted
                software development every day.
</p> </div> </div> </div> <div class="mt-14"> <a href="/experience" class="inline-flex items-center text-sm font-semibold text-navy hover:text-amber-text transition-colors">
Read the full experience &rarr;
</a> </div> </div> </section> <section class="py-24 md:py-32 bg-ivory-dark"><div class="max-w-4xl mx-auto px-6"><span class="inline-flex items-center gap-2 text-xs font-semibold tracking-[0.15em] uppercase text-amber-text"> <span class="w-8 h-px bg-amber"></span> Latest build </span><a href="/builds/notepulse" class="group mt-6 block rounded-2xl border border-border/60 bg-surface/60 overflow-hidden hover:border-amber/30 transition-colors duration-300"><div class="grid grid-cols-1 md:grid-cols-[1fr_1.2fr]"><div class="hidden md:block bg-navy" aria-hidden="true"></div><div class="p-8 md:p-10 flex flex-col justify-center"><p class="text-xs font-semibold tracking-[0.12em] uppercase text-amber-text">Product &middot; saas</p><h3 class="mt-3 font-display text-3xl md:text-4xl text-navy leading-tight group-hover:text-amber-text transition-colors">NotePulse</h3><p class="mt-4 text-text-secondary leading-relaxed">Analytics for Notion pages with automated tracking and view counting</p><p class="mt-6 text-sm font-semibold text-navy group-hover:text-amber-text transition-colors">
Read more &rarr;
</p></div></div></a></div></section>  <section class="py-24 md:py-32"> <div class="max-w-5xl mx-auto px-6"> <span class="inline-flex items-center gap-2 text-xs font-semibold tracking-[0.15em] uppercase text-amber-text"> <span class="w-8 h-px bg-amber"></span> Things I've Built </span> <h2 class="mt-6 font-display text-3xl md:text-4xl lg:text-5xl leading-tight text-navy max-w-2xl">
Things I've shipped
</h2> <div class="mt-14 grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6"> <article class="group relative p-6 rounded-xl border border-border/60 bg-surface/60 hover:border-amber/30 transition-colors duration-300 flex flex-col"> <div class="flex items-start justify-between gap-3"> <div> <h3 class="font-display text-xl text-navy leading-tight group-hover:text-amber-text transition-colors"> <a href="/experience/independent/snake-defense" class="after:absolute after:inset-0 after:rounded-xl"> Snake Defense: Castle Rush </a> </h3> <p class="mt-1 text-xs font-semibold tracking-[0.12em] uppercase text-amber-text"> Castle defense snake game </p> <p class="mt-1 text-xs text-text-muted">Apr 2026</p> </div> <span class="text-[0.65rem] font-semibold tracking-wider uppercase px-2 py-1 rounded shrink-0 bg-amber-dim text-amber-text"> Live </span> </div> <p class="mt-4 text-sm text-text-secondary leading-relaxed flex-1">Classic snake meets castle defense. Guide a snake around a grid battlefield, intercept waves of enemies, and defend your castle across boss encounters, daily challenges, and Game Center leaderboards.</p>  <ul class="mt-4 flex flex-wrap gap-1.5" aria-label="Technologies used"> <li class="inline-flex items-center gap-1 text-[0.65rem] font-semibold tracking-wider uppercase text-amber-text bg-amber-dim px-2 py-1 rounded"> <svg width="1em" height="1em" aria-hidden="true" class="shrink-0 w-3 h-3" data-icon="simple-icons:swift">   <symbol id="ai:simple-icons:swift" viewBox="0 0 24 24"><path fill="currentColor" d="m7.508 0l-.86.002q-.362.001-.724.01q-.198.005-.395.015A9 9 0 0 0 4.348.15A5.5 5.5 0 0 0 2.85.645A5.04 5.04 0 0 0 .645 2.848c-.245.48-.4.972-.495 1.5c-.093.52-.122 1.05-.136 1.576a35 35 0 0 0-.012.724L0 7.508v8.984l.002.862q.002.36.012.722c.014.526.043 1.057.136 1.576c.095.528.25 1.02.495 1.5a5.03 5.03 0 0 0 2.205 2.203c.48.244.97.4 1.498.495c.52.093 1.05.124 1.576.138q.362.01.724.01q.43.003.86.002h8.984l.86-.002q.362 0 .724-.01a10.5 10.5 0 0 0 1.578-.138a5.3 5.3 0 0 0 1.498-.495a5.04 5.04 0 0 0 2.203-2.203c.245-.48.4-.972.495-1.5c.093-.52.124-1.05.138-1.576q.01-.361.01-.722q.003-.431.002-.862V7.508l-.002-.86a34 34 0 0 0-.01-.724a10.5 10.5 0 0 0-.138-1.576a5.3 5.3 0 0 0-.495-1.5A5.04 5.04 0 0 0 21.152.645A5.3 5.3 0 0 0 19.654.15a10.5 10.5 0 0 0-1.578-.138a35 35 0 0 0-.722-.01L16.492 0zm6.035 3.41c4.114 2.47 6.545 7.162 5.549 11.131c-.024.093-.05.181-.076.272l.002.001c2.062 2.538 1.5 5.258 1.236 4.745c-1.072-2.086-3.066-1.568-4.088-1.043a7 7 0 0 1-.281.158l-.02.012l-.002.002c-2.115 1.123-4.957 1.205-7.812-.022a12.57 12.57 0 0 1-5.64-4.838c.649.48 1.35.902 2.097 1.252c3.019 1.414 6.051 1.311 8.197-.002C9.651 12.73 7.101 9.67 5.146 7.191a10.6 10.6 0 0 1-1.005-1.384c2.34 2.142 6.038 4.83 7.365 5.576C8.69 8.408 6.208 4.743 6.324 4.86c4.436 4.47 8.528 6.996 8.528 6.996c.154.085.27.154.36.213q.128-.322.224-.668c.708-2.588-.09-5.548-1.893-7.992z"/></symbol><use href="#ai:simple-icons:swift"></use>  </svg> Swift </li><li class="inline-flex items-center gap-1 text-[0.65rem] font-semibold tracking-wider uppercase text-amber-text bg-amber-dim px-2 py-1 rounded"> <svg width="1em" height="1em" viewBox="0 0 24 24" aria-hidden="true" class="shrink-0 w-3 h-3" data-icon="simple-icons:swift">   <use href="#ai:simple-icons:swift"></use>  </svg> SwiftUI </li><li class="inline-flex items-center gap-1 text-[0.65rem] font-semibold tracking-wider uppercase text-amber-text bg-amber-dim px-2 py-1 rounded">  SpriteKit </li><li class="inline-flex items-center gap-1 text-[0.65rem] font-semibold tracking-wider uppercase text-amber-text bg-amber-dim px-2 py-1 rounded">  Game Center </li> </ul> <div class="relative z-10 mt-4 flex flex-wrap gap-3"> <a href="https://apps.apple.com/us/app/snake-defense-castle-rush/id6761341389" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-1 text-xs font-semibold text-slate hover:text-amber-text transition-colors"> App Store <svg class="w-3 h-3" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 6H5.25A2.25 2.25 0 003 8.25v10.5A2.25 2.25 0 005.25 21h10.5A2.25 2.25 0 0018 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25"></path> </svg> </a> </div> <p class="mt-3 text-xs font-semibold text-navy group-hover:text-amber-text transition-colors">
View details &rarr;
</p>  </article><article class="group relative p-6 rounded-xl border border-border/60 bg-surface/60 hover:border-amber/30 transition-colors duration-300 flex flex-col"> <div class="flex items-start justify-between gap-3"> <div> <h3 class="font-display text-xl text-navy leading-tight group-hover:text-amber-text transition-colors"> <a href="/experience/independent/idle-lemonade-tycoon" class="after:absolute after:inset-0 after:rounded-xl"> Idle Lemonade Stand Tycoon </a> </h3> <p class="mt-1 text-xs font-semibold tracking-[0.12em] uppercase text-amber-text"> Clicker business empire game </p> <p class="mt-1 text-xs text-text-muted">Feb 2026</p> </div> <span class="text-[0.65rem] font-semibold tracking-wider uppercase px-2 py-1 rounded shrink-0 bg-amber-dim text-amber-text"> Live </span> </div> <p class="mt-4 text-sm text-text-secondary leading-relaxed flex-1">A modern take on the classic lemonade tycoon formula as an incremental idle game. Start with a single glass and build a lemonade empire through 15 generators, a prestige system, seasonal events, and offline earnings.</p> <ul class="mt-4 flex flex-wrap gap-x-3 gap-y-1"> <li class="text-xs font-semibold text-navy">~53K downloads</li> </ul> <ul class="mt-4 flex flex-wrap gap-1.5" aria-label="Technologies used"> <li class="inline-flex items-center gap-1 text-[0.65rem] font-semibold tracking-wider uppercase text-amber-text bg-amber-dim px-2 py-1 rounded"> <svg width="1em" height="1em" viewBox="0 0 24 24" aria-hidden="true" class="shrink-0 w-3 h-3" data-icon="simple-icons:swift">   <use href="#ai:simple-icons:swift"></use>  </svg> Swift </li><li class="inline-flex items-center gap-1 text-[0.65rem] font-semibold tracking-wider uppercase text-amber-text bg-amber-dim px-2 py-1 rounded"> <svg width="1em" height="1em" viewBox="0 0 24 24" aria-hidden="true" class="shrink-0 w-3 h-3" data-icon="simple-icons:swift">   <use href="#ai:simple-icons:swift"></use>  </svg> SwiftUI </li><li class="inline-flex items-center gap-1 text-[0.65rem] font-semibold tracking-wider uppercase text-amber-text bg-amber-dim px-2 py-1 rounded">  Game Center </li> </ul> <div class="relative z-10 mt-4 flex flex-wrap gap-3"> <a href="https://apps.apple.com/us/app/idle-lemonade-stand-tycoon/id6759578756" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-1 text-xs font-semibold text-slate hover:text-amber-text transition-colors"> App Store <svg class="w-3 h-3" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 6H5.25A2.25 2.25 0 003 8.25v10.5A2.25 2.25 0 005.25 21h10.5A2.25 2.25 0 0018 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25"></path> </svg> </a> </div> <p class="mt-3 text-xs font-semibold text-navy group-hover:text-amber-text transition-colors">
View details &rarr;
</p>  </article><article class="group relative p-6 rounded-xl border border-border/60 bg-surface/60 hover:border-amber/30 transition-colors duration-300 flex flex-col"> <div class="flex items-start justify-between gap-3"> <div> <h3 class="font-display text-xl text-navy leading-tight group-hover:text-amber-text transition-colors"> <a href="/experience/independent/notepulse" class="after:absolute after:inset-0 after:rounded-xl"> NotePulse </a> </h3> <p class="mt-1 text-xs font-semibold tracking-[0.12em] uppercase text-amber-text"> Notion analytics </p> <p class="mt-1 text-xs text-text-muted">May – Nov 2025</p> </div> <span class="text-[0.65rem] font-semibold tracking-wider uppercase px-2 py-1 rounded shrink-0 bg-amber-dim text-amber-text"> Live </span> </div> <p class="mt-4 text-sm text-text-secondary leading-relaxed flex-1">Adds Views and Last Viewed properties directly to your Notion databases. See which pages actually get read, sort and filter by view count, and track engagement without leaving Notion. Two-minute setup, no separate dashboard.</p> <ul class="mt-4 flex flex-wrap gap-x-3 gap-y-1"> <li class="text-xs font-semibold text-navy">22 users</li><li class="text-xs font-semibold text-navy">4,489 pages tracked</li><li class="text-xs font-semibold text-navy">11,649 views tracked</li><li class="text-xs font-semibold text-navy">449 avg pages/mo</li><li class="text-xs font-semibold text-navy">1,059 avg views/mo</li> </ul> <ul class="mt-4 flex flex-wrap gap-1.5" aria-label="Technologies used"> <li class="inline-flex items-center gap-1 text-[0.65rem] font-semibold tracking-wider uppercase text-amber-text bg-amber-dim px-2 py-1 rounded"> <svg width="1em" height="1em" aria-hidden="true" class="shrink-0 w-3 h-3" data-icon="simple-icons:nextdotjs">   <symbol id="ai:simple-icons:nextdotjs" viewBox="0 0 24 24"><path fill="currentColor" d="M18.665 21.978A11.94 11.94 0 0 1 12 24C5.377 24 0 18.623 0 12S5.377 0 12 0s12 5.377 12 12c0 3.583-1.574 6.801-4.067 9.001L9.219 7.2H7.2v9.596h1.615V9.251zm-3.332-8.533l1.6 2.061V7.2h-1.6z"/></symbol><use href="#ai:simple-icons:nextdotjs"></use>  </svg> Next.js </li><li class="inline-flex items-center gap-1 text-[0.65rem] font-semibold tracking-wider uppercase text-amber-text bg-amber-dim px-2 py-1 rounded"> <svg width="1em" height="1em" aria-hidden="true" class="shrink-0 w-3 h-3" data-icon="simple-icons:typescript">   <symbol id="ai:simple-icons:typescript" viewBox="0 0 24 24"><path fill="currentColor" d="M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75q.918 0 1.627.111a6.4 6.4 0 0 1 1.306.34v2.458a4 4 0 0 0-.643-.361a5 5 0 0 0-.717-.26a5.5 5.5 0 0 0-1.426-.2q-.45 0-.819.086a2.1 2.1 0 0 0-.623.242q-.254.156-.393.374a.9.9 0 0 0-.14.49q0 .294.156.529q.156.234.443.444c.287.21.423.276.696.41q.41.203.926.416q.705.296 1.266.628q.561.333.963.753q.402.418.614.957q.213.538.214 1.253q0 .986-.373 1.656a3 3 0 0 1-1.012 1.085a4.4 4.4 0 0 1-1.487.596q-.85.18-1.79.18a10 10 0 0 1-1.84-.164a5.5 5.5 0 0 1-1.512-.493v-2.63a5.03 5.03 0 0 0 3.237 1.2q.5 0 .872-.09q.373-.09.623-.25q.249-.162.373-.38a1.02 1.02 0 0 0-.074-1.089a2.1 2.1 0 0 0-.537-.5a5.6 5.6 0 0 0-.807-.444a28 28 0 0 0-1.007-.436q-1.377-.575-2.053-1.405t-.676-2.005q0-.92.369-1.582q.368-.662 1.004-1.089a4.5 4.5 0 0 1 1.47-.629a7.5 7.5 0 0 1 1.77-.201m-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z"/></symbol><use href="#ai:simple-icons:typescript"></use>  </svg> TypeScript </li><li class="inline-flex items-center gap-1 text-[0.65rem] font-semibold tracking-wider uppercase text-amber-text bg-amber-dim px-2 py-1 rounded"> <svg width="1em" height="1em" aria-hidden="true" class="shrink-0 w-3 h-3" data-icon="simple-icons:supabase">   <symbol id="ai:simple-icons:supabase" viewBox="0 0 24 24"><path fill="currentColor" d="M11.9 1.036c-.015-.986-1.26-1.41-1.874-.637L.764 12.05C-.33 13.427.65 15.455 2.409 15.455h9.579l.113 7.51c.014.985 1.259 1.408 1.873.636l9.262-11.653c1.093-1.375.113-3.403-1.645-3.403h-9.642z"/></symbol><use href="#ai:simple-icons:supabase"></use>  </svg> Supabase </li><li class="inline-flex items-center gap-1 text-[0.65rem] font-semibold tracking-wider uppercase text-amber-text bg-amber-dim px-2 py-1 rounded"> <svg width="1em" height="1em" aria-hidden="true" class="shrink-0 w-3 h-3" data-icon="simple-icons:vercel">   <symbol id="ai:simple-icons:vercel" viewBox="0 0 24 24"><path fill="currentColor" d="m12 1.608l12 20.784H0Z"/></symbol><use href="#ai:simple-icons:vercel"></use>  </svg> Vercel </li><li class="inline-flex items-center gap-1 text-[0.65rem] font-semibold tracking-wider uppercase text-amber-text bg-amber-dim px-2 py-1 rounded"> <svg width="1em" height="1em" aria-hidden="true" class="shrink-0 w-3 h-3" data-icon="simple-icons:anthropic">   <symbol id="ai:simple-icons:anthropic" viewBox="0 0 24 24"><path fill="currentColor" d="M17.304 3.541h-3.672l6.696 16.918H24Zm-10.608 0L0 20.459h3.744l1.37-3.553h7.005l1.369 3.553h3.744L10.536 3.541Zm-.371 10.223L8.616 7.82l2.291 5.945Z"/></symbol><use href="#ai:simple-icons:anthropic"></use>  </svg> Claude Code </li> </ul> <div class="relative z-10 mt-4 flex flex-wrap gap-3"> <a href="https://notepulse.net/" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-1 text-xs font-semibold text-slate hover:text-amber-text transition-colors"> Website <svg class="w-3 h-3" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 6H5.25A2.25 2.25 0 003 8.25v10.5A2.25 2.25 0 005.25 21h10.5A2.25 2.25 0 0018 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25"></path> </svg> </a> </div> <p class="mt-3 text-xs font-semibold text-navy group-hover:text-amber-text transition-colors">
View details &rarr;
</p> <a href="/builds/notepulse" class="relative z-10 mt-1 inline-flex items-center text-xs font-medium text-text-muted hover:text-amber-text transition-colors">
Release log &rarr;
</a> </article><article class="group relative p-6 rounded-xl border border-border/60 bg-surface/60 hover:border-amber/30 transition-colors duration-300 flex flex-col"> <div class="flex items-start justify-between gap-3"> <div> <h3 class="font-display text-xl text-navy leading-tight group-hover:text-amber-text transition-colors"> <a href="/experience/independent/the-mandate" class="after:absolute after:inset-0 after:rounded-xl"> The Mandate: Political Sim </a> </h3> <p class="mt-1 text-xs font-semibold tracking-[0.12em] uppercase text-amber-text"> Lead the Republic of Valcera </p> <p class="mt-1 text-xs text-text-muted">Mar 2026</p> </div> <span class="text-[0.65rem] font-semibold tracking-wider uppercase px-2 py-1 rounded shrink-0 bg-amber-dim text-amber-text"> Live </span> </div> <p class="mt-4 text-sm text-text-secondary leading-relaxed flex-1">A text-driven political simulation inspired by Suzerain. As the newly elected president of a fragile republic, balance five competing factions through branching narratives and a consequence engine that tracks every decision.</p>  <ul class="mt-4 flex flex-wrap gap-1.5" aria-label="Technologies used"> <li class="inline-flex items-center gap-1 text-[0.65rem] font-semibold tracking-wider uppercase text-amber-text bg-amber-dim px-2 py-1 rounded"> <svg width="1em" height="1em" viewBox="0 0 24 24" aria-hidden="true" class="shrink-0 w-3 h-3" data-icon="simple-icons:swift">   <use href="#ai:simple-icons:swift"></use>  </svg> Swift </li><li class="inline-flex items-center gap-1 text-[0.65rem] font-semibold tracking-wider uppercase text-amber-text bg-amber-dim px-2 py-1 rounded"> <svg width="1em" height="1em" viewBox="0 0 24 24" aria-hidden="true" class="shrink-0 w-3 h-3" data-icon="simple-icons:swift">   <use href="#ai:simple-icons:swift"></use>  </svg> SwiftUI </li> </ul> <div class="relative z-10 mt-4 flex flex-wrap gap-3"> <a href="https://apps.apple.com/us/app/the-mandate-political-sim/id6761347033" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-1 text-xs font-semibold text-slate hover:text-amber-text transition-colors"> App Store <svg class="w-3 h-3" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 6H5.25A2.25 2.25 0 003 8.25v10.5A2.25 2.25 0 005.25 21h10.5A2.25 2.25 0 0018 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25"></path> </svg> </a> </div> <p class="mt-3 text-xs font-semibold text-navy group-hover:text-amber-text transition-colors">
View details &rarr;
</p>  </article><article class="group relative p-6 rounded-xl border border-border/60 bg-surface/60 hover:border-amber/30 transition-colors duration-300 flex flex-col"> <div class="flex items-start justify-between gap-3"> <div> <h3 class="font-display text-xl text-navy leading-tight group-hover:text-amber-text transition-colors"> <a href="/experience/independent/hex-by-hex" class="after:absolute after:inset-0 after:rounded-xl"> Hex by Hex </a> </h3> <p class="mt-1 text-xs font-semibold tracking-[0.12em] uppercase text-amber-text"> Race the Tide. Claim the map. </p> <p class="mt-1 text-xs text-text-muted">Mar 2026</p> </div> <span class="text-[0.65rem] font-semibold tracking-wider uppercase px-2 py-1 rounded shrink-0 bg-amber-dim text-amber-text"> Live </span> </div> <p class="mt-4 text-sm text-text-secondary leading-relaxed flex-1">A roguelite strategy game on a hex grid. Claim tiles, build a resource economy, and race against the Tide clock in quick five-minute runs. Features daily challenges and Game Center leaderboards. No ads, no energy meters.</p>  <ul class="mt-4 flex flex-wrap gap-1.5" aria-label="Technologies used"> <li class="inline-flex items-center gap-1 text-[0.65rem] font-semibold tracking-wider uppercase text-amber-text bg-amber-dim px-2 py-1 rounded"> <svg width="1em" height="1em" viewBox="0 0 24 24" aria-hidden="true" class="shrink-0 w-3 h-3" data-icon="simple-icons:swift">   <use href="#ai:simple-icons:swift"></use>  </svg> Swift </li><li class="inline-flex items-center gap-1 text-[0.65rem] font-semibold tracking-wider uppercase text-amber-text bg-amber-dim px-2 py-1 rounded"> <svg width="1em" height="1em" viewBox="0 0 24 24" aria-hidden="true" class="shrink-0 w-3 h-3" data-icon="simple-icons:swift">   <use href="#ai:simple-icons:swift"></use>  </svg> SwiftUI </li><li class="inline-flex items-center gap-1 text-[0.65rem] font-semibold tracking-wider uppercase text-amber-text bg-amber-dim px-2 py-1 rounded">  Game Center </li> </ul> <div class="relative z-10 mt-4 flex flex-wrap gap-3"> <a href="https://apps.apple.com/us/app/hex-by-hex/id6761346969" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-1 text-xs font-semibold text-slate hover:text-amber-text transition-colors"> App Store <svg class="w-3 h-3" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 6H5.25A2.25 2.25 0 003 8.25v10.5A2.25 2.25 0 005.25 21h10.5A2.25 2.25 0 0018 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25"></path> </svg> </a> </div> <p class="mt-3 text-xs font-semibold text-navy group-hover:text-amber-text transition-colors">
View details &rarr;
</p>  </article><article class="group relative p-6 rounded-xl border border-border/60 bg-surface/60 hover:border-amber/30 transition-colors duration-300 flex flex-col"> <div class="flex items-start justify-between gap-3"> <div> <h3 class="font-display text-xl text-navy leading-tight group-hover:text-amber-text transition-colors"> <a href="/experience/independent/indiemetrics" class="after:absolute after:inset-0 after:rounded-xl"> IndieMetrics </a> </h3> <p class="mt-1 text-xs font-semibold tracking-[0.12em] uppercase text-amber-text"> Financial metrics for makers </p> <p class="mt-1 text-xs text-text-muted">Jan 2026</p> </div> <span class="text-[0.65rem] font-semibold tracking-wider uppercase px-2 py-1 rounded shrink-0 bg-amber-dim text-amber-text"> Live </span> </div> <p class="mt-4 text-sm text-text-secondary leading-relaxed flex-1">Dashboard that pulls revenue data from Stripe, Gumroad, and Lemon Squeezy into one view. Tracks MRR, churn, and growth across an indie founder&#39;s full product portfolio.</p>  <ul class="mt-4 flex flex-wrap gap-1.5" aria-label="Technologies used"> <li class="inline-flex items-center gap-1 text-[0.65rem] font-semibold tracking-wider uppercase text-amber-text bg-amber-dim px-2 py-1 rounded"> <svg width="1em" height="1em" viewBox="0 0 24 24" aria-hidden="true" class="shrink-0 w-3 h-3" data-icon="simple-icons:nextdotjs">   <use href="#ai:simple-icons:nextdotjs"></use>  </svg> Next.js </li><li class="inline-flex items-center gap-1 text-[0.65rem] font-semibold tracking-wider uppercase text-amber-text bg-amber-dim px-2 py-1 rounded"> <svg width="1em" height="1em" viewBox="0 0 24 24" aria-hidden="true" class="shrink-0 w-3 h-3" data-icon="simple-icons:typescript">   <use href="#ai:simple-icons:typescript"></use>  </svg> TypeScript </li><li class="inline-flex items-center gap-1 text-[0.65rem] font-semibold tracking-wider uppercase text-amber-text bg-amber-dim px-2 py-1 rounded"> <svg width="1em" height="1em" viewBox="0 0 24 24" aria-hidden="true" class="shrink-0 w-3 h-3" data-icon="simple-icons:supabase">   <use href="#ai:simple-icons:supabase"></use>  </svg> Supabase </li><li class="inline-flex items-center gap-1 text-[0.65rem] font-semibold tracking-wider uppercase text-amber-text bg-amber-dim px-2 py-1 rounded"> <svg width="1em" height="1em" viewBox="0 0 24 24" aria-hidden="true" class="shrink-0 w-3 h-3" data-icon="simple-icons:vercel">   <use href="#ai:simple-icons:vercel"></use>  </svg> Vercel </li><li class="inline-flex items-center gap-1 text-[0.65rem] font-semibold tracking-wider uppercase text-amber-text bg-amber-dim px-2 py-1 rounded"> <svg width="1em" height="1em" viewBox="0 0 24 24" aria-hidden="true" class="shrink-0 w-3 h-3" data-icon="simple-icons:anthropic">   <use href="#ai:simple-icons:anthropic"></use>  </svg> Claude Code </li> </ul> <div class="relative z-10 mt-4 flex flex-wrap gap-3"> <a href="https://indiemetrics.net/" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-1 text-xs font-semibold text-slate hover:text-amber-text transition-colors"> Website <svg class="w-3 h-3" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 6H5.25A2.25 2.25 0 003 8.25v10.5A2.25 2.25 0 005.25 21h10.5A2.25 2.25 0 0018 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25"></path> </svg> </a> </div> <p class="mt-3 text-xs font-semibold text-navy group-hover:text-amber-text transition-colors">
View details &rarr;
</p>  </article> </div> <div class="mt-10 text-center"> <a href="/portfolio" class="inline-flex items-center justify-center px-6 py-3 border border-border/60 hover:border-amber/30 text-navy text-sm font-semibold rounded-lg transition-colors duration-200">
View all projects &rarr;
</a> </div> <p class="mt-4 text-center text-sm text-text-muted"> <a href="/builds" class="font-semibold text-navy hover:text-amber-text transition-colors">
Browse the full release log &rarr;
</a> </p> </div> </section>  <section class="py-24 md:py-32 bg-navy text-text-on-dark relative overflow-hidden"> <div class="absolute inset-0 pointer-events-none"> <div class="absolute top-0 left-1/3 w-[600px] h-[600px] rounded-full bg-gradient-to-br from-amber/[0.03] to-transparent"></div> </div> <div class="relative max-w-4xl mx-auto px-6"> <span class="inline-flex items-center gap-2 text-xs font-semibold tracking-[0.15em] uppercase text-amber-text"> <span class="w-8 h-px bg-amber"></span> Recognition & Appearances </span> <h2 class="mt-6 font-display text-3xl md:text-4xl lg:text-5xl leading-tight">
Beyond the code
</h2> <div class="mt-14 space-y-8"> <div class="flex gap-4"> <div class="w-1 rounded-full bg-amber/40 shrink-0"></div> <div> <p class="font-semibold text-text-on-dark">SDBJ Leaders of Influence in Technology 2024</p> <p class="mt-1 text-text-on-dark-muted leading-relaxed">Recognized by the San Diego Business Journal for technology leadership and impact.</p> </div> </div><div class="flex gap-4"> <div class="w-1 rounded-full bg-amber/40 shrink-0"></div> <div> <p class="font-semibold text-text-on-dark">7CTOs Podcast</p> <p class="mt-1 text-text-on-dark-muted leading-relaxed">Guest appearance discussing engineering leadership, startup scaling, and technology strategy.</p> </div> </div><div class="flex gap-4"> <div class="w-1 rounded-full bg-amber/40 shrink-0"></div> <div> <p class="font-semibold text-text-on-dark">Korean Armed Forces Excellence Award</p> <p class="mt-1 text-text-on-dark-muted leading-relaxed">Awarded for software development contributions during military service in the Republic of Korea Air Force.</p> </div> </div><div class="flex gap-4"> <div class="w-1 rounded-full bg-amber/40 shrink-0"></div> <div> <p class="font-semibold text-text-on-dark">App Fresh Podcast &amp; Bright Newt</p> <p class="mt-1 text-text-on-dark-muted leading-relaxed">Early career podcast and guest writing about indie app development and mobile publishing.</p> </div> </div> </div> </div> </section>  <section class="py-24 md:py-32"> <div class="max-w-5xl mx-auto px-6"> <span class="inline-flex items-center gap-2 text-xs font-semibold tracking-[0.15em] uppercase text-amber-text"> <span class="w-8 h-px bg-amber"></span> What Others Say </span> <h2 class="mt-6 font-display text-3xl md:text-4xl lg:text-5xl leading-tight text-navy max-w-2xl mb-14">
From people I've worked with
</h2> <div class="grid grid-cols-1 md:grid-cols-2 gap-8"> <div class="p-10 rounded-2xl bg-navy text-text-on-dark relative"> <span class="absolute top-6 left-8 text-6xl font-display text-amber/20 leading-none select-none">
&ldquo;
</span> <blockquote class="relative z-10 text-lg leading-relaxed font-display italic">
Sean brings a rare combination of deep software engineering expertise
              and a highly collaborative, team-oriented approach to leadership and
              strategy. He is highly forward-thinking in his approach to emerging
              technologies, particularly in AI and intelligent systems.
</blockquote> <div class="mt-8 flex items-center gap-3"> <div class="w-10 h-10 rounded-full bg-amber/20 flex items-center justify-center text-amber font-semibold text-sm">
MF
</div> <div class="text-left"> <p class="text-sm font-semibold text-text-on-dark">Michael Farina</p> <p class="text-xs text-text-on-dark-muted">Senior Product Manager, Schneider Electric</p> </div> </div> </div> <div class="p-10 rounded-2xl bg-navy text-text-on-dark relative"> <span class="absolute top-6 left-8 text-6xl font-display text-amber/20 leading-none select-none">
&ldquo;
</span> <blockquote class="relative z-10 text-lg leading-relaxed font-display italic">
Sean ramps up extremely fast, asks the right questions, and is not
              afraid to speak up when something does not make sense. He brings
              clarity to ambiguity and demonstrates strong ownership and judgment.
</blockquote> <div class="mt-8 flex items-center gap-3"> <div class="w-10 h-10 rounded-full bg-amber/20 flex items-center justify-center text-amber font-semibold text-sm">
MG
</div> <div class="text-left"> <p class="text-sm font-semibold text-text-on-dark">Marcus Greene</p> <p class="text-xs text-text-on-dark-muted">Founder, Saidi Health</p> </div> </div> </div> <div class="p-10 rounded-2xl bg-navy text-text-on-dark relative"> <span class="absolute top-6 left-8 text-6xl font-display text-amber/20 leading-none select-none">
&ldquo;
</span> <blockquote class="relative z-10 text-lg leading-relaxed font-display italic">
He didn't just rest on the technical foundation he built; he actively
              worked to improve our processes, from establishing clear roadmaps to
              completely reorganizing our chaotic Slack channels. He led by example.
</blockquote> <div class="mt-8 flex items-center gap-3"> <div class="w-10 h-10 rounded-full bg-amber/20 flex items-center justify-center text-amber font-semibold text-sm">
JF
</div> <div class="text-left"> <p class="text-sm font-semibold text-text-on-dark">James Forbes</p> <p class="text-xs text-text-on-dark-muted">Senior Technical Program Manager, Sony</p> </div> </div> </div> <div class="p-10 rounded-2xl bg-navy text-text-on-dark relative"> <span class="absolute top-6 left-8 text-6xl font-display text-amber/20 leading-none select-none">
&ldquo;
</span> <blockquote class="relative z-10 text-lg leading-relaxed font-display italic">
Sean combined deep technical expertise with strategic vision,
              directly contributing to Ivy's growth, market differentiation,
              and industry leadership.
</blockquote> <div class="mt-8 flex items-center gap-3"> <div class="w-10 h-10 rounded-full bg-amber/20 flex items-center justify-center text-amber font-semibold text-sm">
AY
</div> <div class="text-left"> <p class="text-sm font-semibold text-text-on-dark">Austin Young</p> <p class="text-xs text-text-on-dark-muted">VP of Marketing, Ivy Energy</p> </div> </div> </div> </div> </div> </section>  <section id="connect" class="py-24 md:py-32 bg-ivory-dark"> <div class="max-w-4xl mx-auto px-6"> <span class="inline-flex items-center gap-2 text-xs font-semibold tracking-[0.15em] uppercase text-amber-text"> <span class="w-8 h-px bg-amber"></span> Work With Me </span> <h2 class="mt-6 font-display text-3xl md:text-4xl lg:text-5xl leading-tight text-navy max-w-2xl">
Let's talk about what you're building
</h2> <p class="mt-6 text-lg text-text-secondary leading-relaxed max-w-3xl">
I'm open to the right opportunity, whether that's a full-time
          engineering leadership role, a consulting engagement, or fractional
          CTO advisory. Here's how we can work together.
</p> <div class="mt-14 grid grid-cols-1 md:grid-cols-3 gap-8"> <div class="p-8 rounded-2xl border border-border/60 bg-surface/50"> <span class="text-xs font-semibold tracking-wider uppercase text-amber-text">Full-Time</span> <p class="mt-4 text-text-secondary leading-relaxed">Engineering leadership or senior IC roles where I can build, scale, and lead at a company solving hard problems.</p>  </div><div class="p-8 rounded-2xl border border-border/60 bg-surface/50"> <span class="text-xs font-semibold tracking-wider uppercase text-amber-text">FCTO Advisory</span> <p class="mt-4 text-text-secondary leading-relaxed">Fractional CTO advisory for founders scaling past funding. Engineering execution, leadership, and AI strategy.</p> <a href="/fcto" class="inline-block mt-4 text-sm font-semibold text-navy hover:text-amber-text transition-colors"> Learn more &rarr;
</a> </div><div class="p-8 rounded-2xl border border-border/60 bg-surface/50"> <span class="text-xs font-semibold tracking-wider uppercase text-amber-text">Consulting</span> <p class="mt-4 text-text-secondary leading-relaxed">Short-term technical leadership, architecture reviews, AI strategy, and engineering assessments.</p>  </div> </div> <div class="mt-16 p-10 rounded-2xl bg-navy text-text-on-dark"> <h3 class="font-display text-2xl md:text-3xl leading-tight">
Get in touch
</h3> <p class="mt-4 text-text-on-dark-muted leading-relaxed max-w-2xl">
Drop me a message or book a time to talk. I read everything and
            respond to anything thoughtful.
</p> <form id="contact-form" class="mt-8 space-y-4 max-w-lg"> <div class="sr-only" aria-hidden="true"> <label for="website">Website</label> <input type="text" id="website" name="website" tabindex="-1" autocomplete="off"> </div> <input type="text" name="name" required placeholder="Your name" aria-label="Your name" class="w-full px-5 py-3.5 rounded-lg bg-navy-mid border border-border-dark text-text-on-dark placeholder:text-text-on-dark-muted focus:border-amber focus:ring-1 focus:ring-amber/30 outline-none transition-all duration-200"> <input type="email" name="email" required placeholder="your@email.com" aria-label="Email address" class="w-full px-5 py-3.5 rounded-lg bg-navy-mid border border-border-dark text-text-on-dark placeholder:text-text-on-dark-muted focus:border-amber focus:ring-1 focus:ring-amber/30 outline-none transition-all duration-200"> <textarea name="message" required rows="4" placeholder="What's on your mind?" aria-label="Message" class="w-full px-5 py-3.5 rounded-lg bg-navy-mid border border-border-dark text-text-on-dark placeholder:text-text-on-dark-muted focus:border-amber focus:ring-1 focus:ring-amber/30 outline-none transition-all duration-200 resize-y"></textarea> <div class="flex flex-col sm:flex-row gap-4 items-start"> <button type="submit" class="px-7 py-3.5 bg-amber hover:bg-amber-light text-navy font-semibold rounded-lg transition-all duration-200 hover:shadow-lg hover:shadow-amber/20 cursor-pointer disabled:opacity-60 disabled:cursor-not-allowed">
Send Message
</button> <a href="https://tidycal.com/seannam" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-7 py-3.5 border border-border-dark text-text-on-dark font-semibold rounded-lg hover:border-amber/50 transition-all duration-200">
Book a Call
</a> </div> <p id="contact-status" role="status" aria-live="polite" class="text-sm text-text-on-dark-muted empty:hidden"></p> </form> </div> <div class="mt-10 flex flex-wrap gap-6"> <a href="https://linkedin.com/in/seannam" target="_blank" rel="noopener noreferrer" class="text-sm font-semibold text-navy hover:text-amber-text transition-colors py-2">
LinkedIn &rarr;
</a> <a href="https://github.com/seannam" target="_blank" rel="noopener noreferrer" class="text-sm font-semibold text-navy hover:text-amber-text transition-colors py-2">
GitHub &rarr;
</a> <a href="https://seannam.com" target="_blank" rel="noopener noreferrer" class="text-sm font-semibold text-navy hover:text-amber-text transition-colors py-2">
Blog &rarr;
</a> </div> </div> </section> <footer class="py-10 border-t border-border/60"> <div class="max-w-6xl mx-auto px-6 flex flex-col sm:flex-row items-center justify-between gap-4"> <a href="/" class="font-display text-lg text-navy hover:text-navy-light transition-colors">
Sean Nam
</a> <div class="flex items-center gap-6"> <a href="/fcto" class="text-sm text-text-muted hover:text-navy transition-colors duration-200 py-2">
FCTO Advisory
</a> <a href="/experience" class="text-sm text-text-muted hover:text-navy transition-colors duration-200 py-2">
Experience
</a> <a href="/portfolio" class="text-sm text-text-muted hover:text-navy transition-colors duration-200 py-2">
Portfolio
</a> <a href="/blog/" target="_blank" class="text-sm text-text-muted hover:text-navy transition-colors duration-200 py-2">
Blog
</a> <span class="text-border/60">|</span> <p class="text-sm text-text-muted">
Engineer, Builder, Operator
</p> </div> </div> </footer> </main>  <script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a0b1416dd950b6b4',t:'MTc4MTM1NTM4OQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body></html> <script type="module">const n=document.getElementById("contact-form");if(n){let a=0;const e=document.getElementById("contact-status");n.addEventListener("submit",l=>{l.preventDefault();const s=Date.now();if(s-a<1e4)return;a=s;const i=n.querySelector('input[name="website"]');if(i&&i.value)return;const r=n.querySelector('input[name="name"]').value,u=n.querySelector('input[name="email"]').value,c=n.querySelector('textarea[name="message"]').value,t=n.querySelector('button[type="submit"]');!r||!u||!c||t.disabled||(t.disabled=!0,t.textContent="Sending...",e&&(e.textContent=""),fetch("https://seannam.com/api/contact",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:r,email:u,message:c,source:"homepage"})}).then(o=>{if(!o.ok)throw new Error("Submission failed");return o.json()}).then(o=>{if(!o.success)throw new Error("Submission failed");t.textContent="Sent!",e&&(e.textContent="Message sent! I'll be in touch."),n.querySelectorAll("input:not([type='hidden']):not([name='website']), textarea").forEach(m=>m.value=""),setTimeout(()=>{t.disabled=!1,t.textContent="Send Message",e&&(e.textContent="")},5e3)}).catch(()=>{t.disabled=!1,t.textContent="Send Message",e&&(e.textContent="Something went wrong. Please try again.")}))})}</script>